package org.dromara.device.domain.bo;

import com.alibaba.excel.annotation.ExcelProperty;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;

import java.io.Serial;
import java.io.Serializable;
import java.util.List;

@Data
public class DeviceBo implements Serializable {
    @Serial
    private static final long serialVersionUID = 5753545094104220495L;

    /**
     * 设备id
     */
    @NotNull(message = "设备id不能为空", groups = { EditGroup.class })
    private Long deviceId;

    /**
     * 设备key
     */
    private String loginKey;

    /**
     * 设备唯一序列号（超管配置，设备新增时检索有没有用户输入的sn设备，有的话配置store_id字段）
     */
    @NotBlank(message = "设备唯一序列号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String deviceSn;

    /**
     * 设备名称（用户输入）
     */
    @NotBlank(message = "设备名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String name;


    /**
     * 是否可见（用户配置：0 可见 1 不可见）
     */
    private String display;

    /**
     * 是否可云控（用户配置：0 可控 1 不可控）
     */
    private String control;


    /**
     * 设备类型(用户配置，字典表：视频设备 NOT_FLOW，进店客流设备 INDOOR，过店客流设备 OUTDOOR，存储设备 STORAGE，关注度设备 ATTENTION_EQT，进过店设备 IN_AND_OUT)
     */
    @NotBlank(message = "设备类型不能为空", groups = { AddGroup.class, EditGroup.class })
    private String deviceArea;

    /**
     * 门店id（用户配置，设备配置时必选项，删除设备是清空该字段）
     */
    @NotNull(message = "请选择门店", groups = { AddGroup.class, EditGroup.class })
    private Long storeId;

    private String storeName;
    private List<Long> storeIds;
    /**
     * 门店分区ID集合
     */
    private String storeAreaIds;

    /**
     * 当前状态(0在线 1离线)
     */
    @ExcelProperty(value = "当前状态(0在线 1离线)")
    private String status;

}
